#ifndef RENDER_HPP
#define RENDER_HPP

#include "scene.hpp"

struct RenderConfig
{
    int samples_per_pixel;
    float bounce_chance;
    std::function<float()> rng;
};

Eigen::Vector3f shade_pixel(
    const Scene & scene,
    const Eigen::Vector3f & cam_pos,
    const Eigen::Vector3f & cam_dir,
    const Eigen::Vector3f & cam_up,
    float cam_dist,
    float pixel_x,
    float pixel_y,
    float pixel_width,
    float pixel_height,
    const RenderConfig & config);

#endif
